package org.example.pd.service;

import cn.hutool.json.JSONObject;
import org.example.pd.domain.*;
import org.example.pd.domain.TransferMajor;

import java.util.List;
import java.util.Map;

public interface MajorSourceService {
    //    归一化方法
    double normalization(double score, double maxNum, double minNum);

    double[] getMaxMin(List<Object> obj);

    List<String> getMajorName(String year, String category);

    List<String> getSchool(String year, String majorName);

    // 第一志愿率
    List<FirstVolunteer> getFirstVolunteer(String year, List<String> schoolCode, String majorName);
    // 报到率
    List<FirstVolunteer> getAdmissionRate(String year, List<String> schoolCode, String majorName);
    //    转专业
    List<TransferMajor> transferMajor(String year, List<String> schoolCode, String majorName);

    // 专任教师数量及结构
    List<FullTimeTeachers> numberStructure(String year, List<String> schoolCode, String majorName);

    // 专业教师承担教学情况
    List<FullTimeTeachersTeach> getFullTimeTeachersTeach(String year, List<String> schoolCode, String majorName);

    //培训进修情况
    List<TeacherTraining> getTraining(String year, List<String> schoolCode, String majorName);

    // 教育教学研究与改革项目
    List<EduResearchReform> getEduResearchReform(String year, List<String> schoolCode, String majorName);

    //    教学成果奖
    List<TeachingAward> getTeachingAward(String year, List<String> schoolCode, String majorName);

    List<LeadResearchProjects> getLeadResearchProjects(String year, List<String> schoolCode, String majorName);

    List<PublishPaper> getPublishPaper(String year, List<String> schoolCode, String majorName);

    List<PatentMonograph> getPatentMonograph(String year, List<String> schoolCode, String majorName);

    List<ResTransferStatus> getResTransferStatus(String year, List<String> schoolCode, String majorName);

    // 专业实验教学校内场所情况
    List<LaboratoryCampus> getLaboratoryCampus(String year, List<String> schoolCode, String majorName);

    List<ProvincialProjectBase> getProvincialProjectBase(String year, List<String> schoolCode, String majorName);

    List<PracticalBaseStatus> getPracticalBaseStatus(String year, List<String> schoolCode, String majorName);

    List<Textbook> getTextbook(String year, List<String> schoolCode, String majorName);

    List<InfoCourseBuild> getInfoCourseBuild(String tabelName,String year, List<String> schoolCode, String majorName);

    List<AdmissionScore> getAdmissionScore(String year, List<String> schoolCode, String majorName);

    List<AdvantageousMajors> getAdvantageousMajors(String year, List<String> schoolCode, String majorName);

    List<HighLevelTitle>  getHighLevelTitle(String year, List<String> schoolCode, String majorName);

    List<HighLevelTeam> getHighLevelTeam(String year, List<String> schoolCode, String majorName);

    List<InnovationParticipation> getInnovationParticipation(String year, List<String> schoolCode, String majorName);

    List<TeacherResPartic> getTeacherResPartic(String year, List<String> schoolCode, String majorName);

    List<UndergradExchange> getUndergradExchange(String year, List<String> schoolCode, String majorName);

    List<LearnResult> getLearnResult(String year, List<String> schoolCode, String majorName);

    List<GradCompTraining> getGradCompTraining(String year, List<String> schoolCode, String majorName);

    List<EmploymentNumber> graduateTrainTeacher(String year, List<String> schoolCode, String majorName);
    List<EmploymentNumber> graduateTrainStu(String year, List<String> schoolCode, String majorName);

    List<EmploymentNumber> employmentNumbers(String year, List<String> schoolCode, String majorName);
    List<EmploymentNumber> getGraduateNumbers(String year, List<String> schoolCode, String majorName);

    List<EmploymentNumber> getHigherSchoolNumber(String year, List<String> schoolCode, String majorName);

    List<EmploymentDestinations> employmentDestinations(String year, List<String> schoolCode, String majorName);

    List<TopCourse> getTopCourse(String year, List<String> schoolCode, String majorName);

    List<String> geySchoolNameByCode(List<String> schoolCode,String year);
}
